import { INCREMENT_COUNT, INCREMENT_N_COUNT } from "../mutation-types";

const state = {
  //持久化1:初始化的时候去本地存储拿值,如果有则拿值,如果没有则给初始数据
  //去本地存储拿值的时候注意,如果是对象格式,需要使用JSON.parse转为对象格式(因为本地存储只能是字符串)
  count: localStorage.getItem("count") || 0,
  price: 100,
  num: 0,
};
const mutations = {
  [INCREMENT_COUNT](state) {
    state.count++;
    //只要持久化的数据发生修改，则需要再次更新存储,(注意,如果存储的值是对象,则需要使用JSON.stringify转为字符串)
    localStorage.setItem("count", state.count);
  },
  [INCREMENT_N_COUNT](state, { n }) {
    state.count += n;
    localStorage.setItem("count", state.count);
  },
};
const actions = {
  incrementWait(store) {
    setTimeout(() => {
      store.commit(INCREMENT_COUNT);
    }, 2000);
  },
  incrementNWait(store, payload) {
    setTimeout(() => {
      store.commit(INCREMENT_N_COUNT, payload);
    }, 2000);
  },
};
const getters = {
  allPrice(state) {
    return state.count * state.price;
  },
};

export default {
  //开启命名空间
  namespaced: true,
  state,
  mutations,
  actions,
  getters,
};
